

import { useUserStore } from "@/stores";

import { createRouter,createWebHistory } from "vue-router";
//import.meta.env.BASE_URL 代表路由的基础地址,是由vite.config.ts中的base配置的值,默认为/
import NProgress from "nprogress";
import 'nprogress/nprogress.css'
const router=createRouter({
  history:createWebHistory(import.meta.env.BASE_URL),
  routes:[
    {
      path:'/login',
      component: ()=>import('@/views/Login/index.vue'), //路由懒加载
      meta:{title:'登录'}
    },
    {
      path:'/user/patient',
      component: ()=>import('@/views/User/PatientPage.vue'), //路由懒加载
      meta:{title:'家庭档案'}
    },
    {
      path:'/consult/fast',
      component: ()=>import('@/views/Consult/ConsultFast.vue'), //路由懒加载
      meta:{title:'极速问诊'}
    },
    {
      path:'/consult/dep',
      component: ()=>import('@/views/Consult/ConsultDep.vue'), //路由懒加载
      meta:{title:'选择科室'}
    },
    {
      path:'/consult/illness',
      component: ()=>import('@/views/Consult/ConsultIllness.vue'), //路由懒加载
      meta:{title:'病情描述'}
    },
    {
      path:'/consult/pay',
      component: ()=>import('@/views/Consult/ConsultPay.vue'), //路由懒加载
      meta:{title:'问诊支付'}
    },
    {
      path:'/room',
      component: ()=>import('@/views/Room/index.vue'), //路由懒加载
      meta:{title:'问诊室'},
      beforeEnter(to){
        if(to.query.payResult==='false') return '/user/consult'
      }
    },
    {
      path:'/login/callback',
      component: ()=>import('@/views/Login/LoginCallback.vue'), //路由懒加载
      meta:{title:'三方登录'}
    },
    {
      path:'/',
      redirect:'/home',
      component: ()=>import('@/views/Layout/index.vue'), //路由懒加载
      children:[
        {path:'/home',component: ()=>import('@/views/Home/index.vue'), meta:{title:'首页'}},
        {path:'/article',component: ()=>import('@/views/Article/index.vue'), meta:{title:'健康百科'}},
        {path:'/user',component: ()=>import('@/views/User/index.vue'), meta:{title:'消息通知'}},
        {path:'/notify',component: ()=>import('@/views/Notify/index.vue'), meta:{title:'个人中心'}}
      ]
    }
  ]
})
NProgress.configure({
  showSpinner: false
})

//全局导航守卫
router.beforeEach((to)=>{
  NProgress.start()
  //获取Token
  const store=useUserStore()
  const wihteList=['/login','/login/callback']
  //如果没有token并且不在白名单,重定向到登录
  if(!store.user?.token && !wihteList.includes(to.path)) return '/login'
})
//全局后置守卫
router.afterEach((to)=>{
  document.title=`${to.meta.title || ''}-${import.meta.env.VITE_APP_TITLE}`
  NProgress.done()
})
export default router
